#include <stdio.h>
#include <stddef.h>



int main()
{
    //数据类型 + *
    //指针也是变量，里面存的是地址
    int *a;
    char *b;
    double *c;

    //指针的大小:8个字节，和数据类型无关，和造作系统的位数有关
    printf("a : %ld\n",sizeof(a));
    printf("b : %ld\n",sizeof(b));
    printf("c : %ld\n",sizeof(c));

    //指针的赋值    &取地址符
    int v = 10;
    //把变量v的地址给到a
    //a指向了变量v
    a = &v;

    //取指针指向的地址的内存值  *取值符号
    printf("*a : %d\n",*a);

    //将指针a指向的地址的内存的值改为20
    *a = 20;
    printf("v : %d\n",v);

    //野指针和空指针
    //野指针：指针指向一个非法位置
    //空指针：指向地址0的指针
    // int *p = NULL;
    // printf("%d\n",*p);

    //定义一个指针时，要初始化为空指针
    int* p = NULL;

    return 0;
}